void main() {
  slice(1, 3);
  slice(2, null); // 不推荐写法

  slice2(2, 4);
//  可选位置参数
  slice(2);



  getUserInfo(1000);
  getUserInfo(1001, 20, '小明'); // 可选命名参数，需按名字传递，可省略传参

}

// 不推荐写法，end 使用时不能省略参数，且不能设置默认值
void slice2(int start, int end, [int step = 1]) {
  print('不推荐写法：$start, $end, $step');
}


// 可选位置参数：使用方括号 [] 定义，需按顺序传递，可省略传参，可指定默认值
void slice(int start,  [int? step]) {
 
  print('可选位置参数：$start,  $step');
}

// 可选命名参数：使用大括号 {} 定义，需按名字传递，可省略传参，可指定默认值
void getUserInfo(int id, [int? age, String? name]) {
  print('可选命名参数：$id, $age, $name');
}


  






